package com.sxj.corejava.code06_数组;

import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2025年07月17日 11:31
 * 有三个班,每个班有5名学生,提示用户分别输入学生的成绩,将数据保存到二维数组中
 * 计算每个班的平均分,全校的最高分与最低分
 */
public class Test10_练习 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double[][] scores = new double[3][5];

        // 定义两个变量,用于接收全校的最高分与最低分
        // 此处定义最高分的变量值必须小于所有学生的成绩,即:成绩的最小值
        double max = 0;
        // 此处定义的最低分的变量值必须高于所有学生的成绩,即:成绩的最大值
        double min = 100;

        // 外层循环控制班级
        for (int i = 0; i < scores.length; i++) {
            // 班级每循环一次,定义一个总分,用于获取该班所有学生总成绩
            double sum = 0.0;
            System.out.println("*************************开始录入第" + (i + 1) + "个班级的成绩*************************");
            // 内层循环控制学生
            for (int j = 0; j < scores[i].length; j++) {
                System.out.print("请输入第" + (j + 1) + "名学生成绩:");
                double score = sc.nextDouble();
                if (score < 0 || score > 100) {
                    System.out.println("本次输入的成绩不合法,请重新输入!");
                    j--;
                    continue;
                }
                scores[i][j] = score;
                // 判断当前录入的学生成绩是否比最高分大?如果高于最高分,则替换
//                max = score > max ? score : max;
                if (score > max) {
                    max = score;
                }
                // 判断当前录入的学生成绩是否比最低分低?如果低于最低分,则替换
                min = score < min ? score : min;
                // 计算班级总分
                sum += score;
            }
            System.out.println("当前班级平均分为:" + sum / scores[i].length);
        }
        System.out.println("全校最高分为:" + max);
        System.out.println("全校最低分为:" + min);
    }
}
